Skip to main content

触发示例2:涂胶过程

Robotics_Trigger_Advanced.project 这里描述的示例项目位于安装目录中 CODESYS 在下面..\CODESYS SoftMotion\Examples

触发器可用于在路径上的特定位置执行操作,例如打开和关闭涂胶喷嘴。

该示例包括以下组件:

  • 配置有保证的轨迹预测 fPlanningForecastDuration 参数来自 SMC_TuneCPKernel 功能块。

  • 不同触发器的命令。这里,使用了所有三种定义路径位置的可用方法(参见 SMC_TriggerPositionType)。

  • 使用具有时移功能的触发器。示例应用程序包含 TriggerWithTimeShift 功能块,它可以通过时间偏移(更早和更晚)对到达路径位置做出反应。

这些组件显示在粘合过程的示例应用程序中。执行下图中红色显示的运动(使用混合)。

_sm_img_digital_switches_example.png

触发器已在绿色标记的位置定义:

  • 位置1:到达该位置前0.05秒打开涂胶装置。

  • 位置 1:到达该位置时打开紫外灯。

  • 位置2:到达该位置后,将供胶容器填满。

  • 位置3:关闭涂胶装置,到达该位置前0.05秒停止向供胶容器注胶。

  • 位置 3:到达该位置 1.5 秒后关闭紫外灯

应用程序的结构

该应用程序由以下部分组成。

  • GlueApplication:该程序包含示例应用程序,展示如何使用触发器进行粘合过程。

  • Planning_PRG:在此程序中,配置了轨迹预测。

  • TriggerWithTimeShift:该功能块包含时移触发器的逻辑,并用于 GlueApplication 示例程序。

  • Trace:轨迹显示了轴的动态以及各轴的输出 GlueApplication 由触发器切换的程序。

预测的配置

如果您想在达到触发之前尽早做出反应,例如 0.05 秒之前,那么 fPlanningForecastDuration 来自 SMC_ 的参数SMC_TuneCPKernel 功能块必须设置为至少 0.05 秒。由于该参数对延迟有直接影响,因此其值不应大于必要的值(请参阅文档 f规划预测持续时间)。注意 SMC_TuneCPKernel 必须在 SoftMotion 规划任务。因此,配置不在主程序中执行 GlueApplication,但在 Planning_PRG 程序。

在此示例应用程序中,需要在到达某个位置之前最早 0.05 秒评估触发器。为此,参数fPlanningForecastDuration=0.05 设置为 Planning_PRG 程序。

功能块:TriggerWithTimeShift

TriggerWithTimeShift 功能块提供了使用触发器的简化界面。此外,还可以定义时移,以便触发器可以在到达某个位置(正值)之前以及到达某个位置(负值)之后做出反应。根据应用中所需的时间精度,到达触发的反应可能如下:

  • 所需的时间精度 >= 总线任务周期:在这种情况下, TriggerWithTimeShift.TriggerReachedThisCycle 可以使用输出。

  • 所需时间精度 < 总线任务周期:在这种情况下,准确的剩余时间 TriggerWithTimeShift.TriggerTime 直到达到触发即可使用。

在内部, TriggerWithTimeShift 使用 SMC_GroupPrepareTriggerSMC_GroupReadTrigger 功能块。

命令触发器

在里面 GlueApplication 程序、运动和触发器受到命令。调用顺序对于触发器来说特别重要,因为触发器使用 SMC_GroupPrepareTrigger 被分配给同一循环中命令的下一个运动。因此,在每次应用中都需要注意以下几点:

  1. 用于命令触发器的功能块始终在运动功能块之前调用。

  2. 触发器和相应的运动始终在同一周期内发出命令。

触发器使用以下所有类型 SMC_TriggerPositionType:

  • 位置 1 处的触发器使用相对距离的定义 (SMC_TriggerPositionType.MvtRelative)和位置 0.5。由于相应移动的距离为 10,因此触发器位于 X=5 处。

  • 位置 2 处的触发使用以用户单位 u 表示的距离定义(SMC_TriggerPositionType.MvtDistance) 和位置 5。因此,触发器也位于 X=5。

  • 位置 3 处的触发器使用与平面 (SMC_TriggerPositionType.PlaneIntersection)。该平面已定义为触发器位于 X=5。

GlueApplicationEnableGlue, EnableUVLamp, 和 RefillGlueStorage 输出。这些在适当的触发器处切换 GlueApplication.EvaluateTriggers()。可以在跟踪中监视和评估这些输出的运动和状态。